<?php

function show_array($array, $parar = false) {
    echo "<pre>";
    print_r($array);
    echo "</pre>";
    $parar ? exit : "";
}

function retiraOrdem($ordem) {
    if ($ordem > 888) {
        return "";
    } else {
        return $ordem . "º ";
    }
}
function verifica_permissao($permissoes,$modulo,$acao){
    
    
    $permissoes = explode(",", $permissoes);
    
    foreach ($permissoes as $permissao){
        
        $funcoes = explode(":", $permissao);
        
        if($funcoes[0]==$modulo){
            
            $acoes = explode("=", $funcoes[1]);
                
                if ($acoes[0]==$acao){
                    if ($acoes[1]==1){
                        return true;
                    }
                }
        }
        
    }
    return false;
    
}
function permissao($modulo, $acao, $user, $redirectOnFalse = false) {

//    if($user->usuarios_id = 1){
//        return true;
//    }else{
//    $permissao = json_decode($user->usuarios_permissoes);
    
    $permissao = verifica_permissao($user->usuarios_permissoes,$modulo,$acao);
    
    
    
    if ($redirectOnFalse && $permissao == false) {
        redirect(base_url());
    }

    return $permissao;
    exit;
}

function get_modulos() {
    return array(
        'usuario'   => array('name' => 'Cadastro de Usuários', 'option' => array('visualizarPagina', 'salvar', 'editar', 'excluir')),
        'bairro'    => array('name' => 'Cadastro de Bairros', 'option' => array('visualizar','salvar','editar')),
        'empresas'  => array('name' => 'Cadastro de Empresas', 'option' => array('visualizar', 'salvar', 'editar', 'excluir')),
        'certidoes' => array('name' => 'Certidões', 'option' => array('explorar','emitir')),
    );
}

function valida_fields($table, $fields) {
    $ci = & get_instance();
    $fields_table = $ci->db->list_fields($table);
    $new_dados = array();
    foreach ($fields as $k => $f) {
        if (in_array($k, $fields_table)) {
            if ($f != "" && $f != NULL) {
                $new_dados[$k] = $f;
            }
        }
    }
    return $new_dados;
}

function conf() {
    unset($_SESSION['config_sistema']);
    if (isset($_SESSION['config_sistema'])) {
        return $_SESSION['config_sistema'];
    } else {
        $ci = & get_instance();
        $dados = $ci->db->get('config')->result();
        $_SESSION['config_sistema'] = new stdClass;
        foreach ($dados as $key => $d) {
            $_SESSION['config_sistema']->{$d->field} = $d->valor;
        }
    }
    return $_SESSION['config_sistema'];
}

function get_user() {
    return $_SESSION['admin'];
}
function get_contrato() {
    return $_SESSION['contrato'];
}

function get_notificacao() {
    return $_SESSION['notificacao'];
}

function set_notificacao($tipo, $mensagem = '') {
    if (is_array($tipo)) {
        $_SESSION['notificacao'] = $tipo;
    } else {
        $_SESSION['notificacao'][] = array('tipo' => $tipo, 'mensagem' => $mensagem);
    }
}

function autenticar() {
    if ($_SESSION['admin'] == FALSE) {
        redirect(URL_SITE . "index.php/entrar");
        exit;
    }
}

function set_user($user, $redirect = true) {
    $_SESSION['admin'] = $user;
    if ($redirect) {
        redirect(base_url("index.php/home"));
        exit;
    }
}

function sair_user() {     
    
    $_SESSION['admin'] = FALSE;
    redirect(URL_SITE . "index.php/entrar");
    exit;
}

function dia_semana($day) {
    switch ($day) {
        case 1: return 'Segunda-Feira';
            break;
        case 2: return 'Terça-Feira';
            break;
        case 3: return 'Quarta-Feira';
            break;
        case 4: return 'Quinta-Feira';
            break;
        case 5: return 'Sexta-Feira';
            break;
        case 6: return 'Sábado';
            break;
        case 7: return 'Domingo';
            break;
    }
}

function data_brasil($data) {
    list($d, $m, $y) = explode('/', $data);
    return "$y-$m-$d";
}

function data_usa($data) {
    list($d, $m, $y) = explode('/', $data);
    return "$y-$m-$d";
}
function data_mostra_usa($data) {
    list($d, $m, $y) = explode('-', $data);
    return "$y/$m/$d";
}

function data_to_usa($data) {
    list($d, $m, $y) = explode('/', $data);
    return "$y-$m-$d";
}

function get_parameter($parameter) {
    return isset($_GET[$parameter]) && $_GET[$parameter] != '' ? $_GET[$parameter] : FALSE;
}
